home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / mips / include / asm / mach-generic / spaces.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.9 KB  |  86 lines

  1. /*
  2.  * This file is subject to the terms and conditions of the GNU General Public
  3.  * License.  See the file "COPYING" in the main directory of this archive
  4.  * for more details.
  5.  *
  6.  * Copyright (C) 1994 - 1999, 2000, 03, 04 Ralf Baechle
  7.  * Copyright (C) 2000, 2002  Maciej W. Rozycki
  8.  * Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc.
  9.  */
  10. #ifndef _ASM_MACH_GENERIC_SPACES_H
  11. #define _ASM_MACH_GENERIC_SPACES_H
  12.  
  13. #include <linux/const.h>
  14.  
  15. /*
  16.  * This gives the physical RAM offset.
  17.  */
  18. #ifndef PHYS_OFFSET
  19. #define PHYS_OFFSET        _AC(0, UL)
  20. #endif
  21.  
  22. #ifdef CONFIG_32BIT
  23.  
  24. #define CAC_BASE        _AC(0x80000000, UL)
  25. #define IO_BASE            _AC(0xa0000000, UL)
  26. #define UNCAC_BASE        _AC(0xa0000000, UL)
  27.  
  28. #ifndef MAP_BASE
  29. #define MAP_BASE        _AC(0xc0000000, UL)
  30. #endif
  31.  
  32. /*
  33.  * Memory above this physical address will be considered highmem.
  34.  */
  35. #ifndef HIGHMEM_START
  36. #define HIGHMEM_START        _AC(0x20000000, UL)
  37. #endif
  38.  
  39. #endif /* CONFIG_32BIT */
  40.  
  41. #ifdef CONFIG_64BIT
  42.  
  43. #ifndef CAC_BASE
  44. #ifdef CONFIG_DMA_NONCOHERENT
  45. #define CAC_BASE        _AC(0x9800000000000000, UL)
  46. #else
  47. #define CAC_BASE        _AC(0xa800000000000000, UL)
  48. #endif
  49. #endif
  50.  
  51. #ifndef IO_BASE
  52. #define IO_BASE            _AC(0x9000000000000000, UL)
  53. #endif
  54.  
  55. #ifndef UNCAC_BASE
  56. #define UNCAC_BASE        _AC(0x9000000000000000, UL)
  57. #endif
  58.  
  59. #ifndef MAP_BASE
  60. #define MAP_BASE        _AC(0xc000000000000000, UL)
  61. #endif
  62.  
  63. /*
  64.  * Memory above this physical address will be considered highmem.
  65.  * Fixme: 59 bits is a fictive number and makes assumptions about processors
  66.  * in the distant future.  Nobody will care for a few years :-)
  67.  */
  68. #ifndef HIGHMEM_START
  69. #define HIGHMEM_START        (_AC(1, UL) << _AC(59, UL))
  70. #endif
  71.  
  72. #define TO_PHYS(x)        (             ((x) & TO_PHYS_MASK))
  73. #define TO_CAC(x)        (CAC_BASE   | ((x) & TO_PHYS_MASK))
  74. #define TO_UNCAC(x)        (UNCAC_BASE | ((x) & TO_PHYS_MASK))
  75.  
  76. #endif /* CONFIG_64BIT */
  77.  
  78. /*
  79.  * This handles the memory map.
  80.  */
  81. #ifndef PAGE_OFFSET
  82. #define PAGE_OFFSET        (CAC_BASE + PHYS_OFFSET)
  83. #endif
  84.  
  85. #endif /* __ASM_MACH_GENERIC_SPACES_H */
  86.